package com.acxy.ants.core.plugin.cron4j;

import java.util.Date;
import java.util.TimerTask;

/**
 * @author MrShun
 * @version 1.0
 * @Date 2017-06-16
 */
public abstract class Task extends TimerTask {

    private String name;

    private Long delay;

    private Long period;

    private Date time;



    public Task(){}

    /**
     * 在特定延迟之后第一次执行，然后按照间隔时间，重复执行
     * @param name 定时器名称
     * @param delay 第一次开始调用时间
     * @param period 在每隔多久调用一次
     */
    public Task(String name, long delay, long period){
        this.name = name;
        this.delay = delay;
        this.period = period;
    }

    /**
     * 在特定时间之后执行任务，只执行一次
     * @param name 定时器名称
     * @param delay 第一次开始调用时间
     */
    public Task(String name, long delay){
        this.name = name;
        this.delay = delay;
    }


    /**
     * 指定第一次执行的时间，然后按照间隔时间，重复执行
     * @param name 定时器名称
     * @param firstTime 第一执行时间
     * @param period 在每隔多久调用一次
     */
    public Task(String name, Date firstTime, long period){
        this.name = name;
        this.time = firstTime;
        this.period = period;
    }


    /**
     * 在特定时间执行任务，只执行一次
     * @param name 定时器名称
     * @param time 指定执行时间
     */
    public Task(String name, Date time){
        this.name = name;
        this.time = time;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getDelay() {
        return delay;
    }

    public void setDelay(Long delay) {
        this.delay = delay;
    }

    public Long getPeriod() {
        return period;
    }

    public void setPeriod(Long period) {
        this.period = period;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }
}
